The subject invention is generally directed to raster type printers, and more particularly to printing techniques wherein the computational time required to prepare display lists and the memory required for storing display lists are reduced.
A raster or matrix type printer forms a printed image by printing a pattern of many individual dots on particular locations of an array or grid defined for the printing medium. The possible locations for dots are conveniently visualized as small areas such as squares or circles in an array such as a rectilinear array, for example, and are commonly called "pixels". Thus, the printing operation can be viewed as the filling of a desired pattern of pixels with ink.
Examples of raster type printers include ink jet printers, dot matrix impact printers, and laser printers.
In a raster type printer, the dots that form the printed image are printed pursuant to some form of bit map raster data array wherein the particular print data for each pixel is stored in a corresponding memory location. For the particular example of binary printing wherein a pixel is either printed or not printed with a dot, the data for each pixel comprises a binary bit at a corresponding one-bit memory location in the bit map data array.
The bit map raster data utilized by a raster type printer to print its output is generated from print data received by the printer, for example from a host computer. The print data represents the information to be printed, and can be in different forms such as raster data or input data for a computer graphics language, for example. The input print data is processed by the printer to ultimately form bit mapped raster data. For efficient raster data storage, the printed image pixel array is logically organized into a sequence or series of adjacent swaths wherein a swath extends completely along one dimension of the pixel array and extends along a fraction of the other dimension of the pixel array. For example, swaths can comprise bands each of which is of the width of the pixel array and a fraction of the height of the pixel array. By logically organizing the printed pixel array into swaths, raster data for the printed image is stored only as required, and raster data for the entire printed image does not have to be stored.
Processing of input data to produce swath raster data commonly involves the generation of a data structure called a display list which typically stores encoded descriptions of the primitive objects (also called primitives or objects) to be printed on a page, wherein objects comprise the predetermined basic or fundamental shapes such as vectors, rectangles, triangles, trapezoids, parallelograms, circles, and so forth, that are utilized by the printer to form the information to be printed. The display list is organized into a sequence of swath lists, wherein each swath list contains records that define all the objects included in a particular swath. In accordance with present techniques, each swath list contains complete descriptions of all objects included in the swath represented thereby. As a result, objects that span more than one swath are described as sub-objects in each of the swaths spanned thereby. A consideration with printing with known display list structures is the requirement for extensive display list processing and storage.